import axios from 'axios';

// 创建axios实例
const request = axios.create({
  timeout: 15000, // 请求超时时间
  baseURL: 'http://110.42.43.209:8090' // 统一使用云服务器地址
});

// 打印基础URL信息
console.log('API请求将发送到:', 'http://110.42.43.209:8090');

// 请求拦截器
request.interceptors.request.use(
  config => {
    // 检查URL是否以file:协议开头，并修正为http协议
    if (config.url && config.url.startsWith('file:')) {
      config.url = config.url.replace(/^file:\/\/.*\/api\//, 'http://110.42.43.209:8090/api/');
      console.log('请求URL已被修正为:', config.url);
    }
    
    // 增加调试信息
    console.log('发送请求:', {
      url: config.url,
      method: config.method,
      headers: config.headers,
      data: config.data instanceof FormData ? '文件上传' : config.data
    });
    
    // 如果是FormData，检查文件内容
    if (config.data instanceof FormData) {
      try {
        for(let pair of config.data.entries()) {
          console.log('FormData内容:', pair[0], '=', 
            pair[1] instanceof File ? `文件(${pair[1].name}, ${pair[1].type}, ${pair[1].size}字节)` : pair[1]);
        }
      } catch(e) {
        console.error('无法读取FormData:', e);
      }
    }
    
    return config;
  },
  error => {
    console.error('请求错误:', error);
    return Promise.reject(error);
  }
);

// 响应拦截器
request.interceptors.response.use(
  response => {
    console.log('请求成功:', {
      url: response.config.url,
      status: response.status,
      data: response.data
    });
    return response;
  },
  error => {
    console.error('响应错误:', error);
    // 添加更详细的错误日志
    if (error.response) {
      // 服务器返回了错误状态码
      console.error('错误状态:', error.response.status);
      console.error('错误数据:', error.response.data);
      console.error('错误头信息:', error.response.headers);
    } else if (error.request) {
      // 请求已发送但没有收到响应
      console.error('无响应错误，请求内容:', error.request);
    } else {
      // 请求配置错误
      console.error('请求配置错误:', error.message);
    }
    return Promise.reject(error);
  }
);

export default request; 